﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLGPS;
using Utilities.UI;

public partial class Intranet_ABMUsuario : BasePage
{
    public override Perfil Perfil { get { return Perfil.Intranet; } }

    public Usuario UsuarioSeleccionado
    {
        get { return (Usuario)Session["UsuarioSeleccionado"]; }
        set { Session["UsuarioSeleccionado"] = value; }
    }

    public ColeccionUsuario  Usuarios
    {
        get { return (ColeccionUsuario )Session["Usuarios"]; }
        set { Session["Usuarios"] = value; }
    }
                      

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuarios = ColeccionUsuario.CargarTodos();
            MostrarGrilla();

            CargarListaPermisos();
        }
    }

    private void CargarListaPermisos()
    {
        chkPermisos.DataValueField = "Id";   
        chkPermisos.DataTextField = "Nombre";
        chkPermisos.DataSource = ColeccionPermisos.Permisos;
        chkPermisos.DataBind();
    }

    private void MostrarGrilla()
    {
        grd.DataKeyNames = new string[] { "Id"};
        grd.DataSource = Usuarios;
        grd.DataBind();
    }

      

    protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
    {        
        switch (e.CommandName)
        {
            case "modificar":
                /*long id = grd.GetRowId(e);
                UsuarioSeleccionado = Usuarios.ObtenerPorId(id);*/
                UsuarioSeleccionado = (Usuario)grd.GetItem(Usuarios, e);
                MostrarDatos();
                break;
            default:
                break;
        }
    }

    protected void cmdNuevo_Click(object sender, EventArgs e)
    {
        txtMail.Text = "";
        txtNombre.Text = "";
        txtUsername.Text = "";
    }
 
    private void MostrarDatos()
    {
        mvMain.ActiveViewIndex = 1;
        txtMail.Text = UsuarioSeleccionado.EMail;
        txtNombre.Text = UsuarioSeleccionado.Nombre;
        txtUsername.Text = UsuarioSeleccionado.UserName;
        
    }
    
    
    protected void cmdAceptar_Click(object sender, EventArgs e)
    {
        if (UsuarioSeleccionado == null)
        {
            UsuarioSeleccionado = new Usuario();
        }

        UsuarioSeleccionado.EMail = txtMail.Text;
        UsuarioSeleccionado.Nombre = txtNombre.Text;
        UsuarioSeleccionado.UserName = txtUsername.Text;
        UsuarioSeleccionado.Activo = chkActivo.Checked;
        UsuarioSeleccionado.Pass = txtPass.Text;

        UsuarioSeleccionado.Permisos =new ColeccionPermisos();
        foreach (ListItem item in chkPermisos.Items)
        {
            if (item.Selected)
            {
                UsuarioSeleccionado.Permisos.Add(ColeccionPermisos.Permisos.ObtenerPorId(long.Parse(item.Value))); 
            }
            
        }
        

#warning habilitar Usuario.Guardar();

        mvMain.ActiveViewIndex = 0;
    }

    protected void cmdCancelar_Click(object sender, EventArgs e)
    {
        mvMain.ActiveViewIndex = 0;
    }
}